<template>
  <el-table :data="arr">
    <el-table-column type="index" label="编号" width="100px"></el-table-column>
    <el-table-column prop="username" label="用户名"></el-table-column>
    <el-table-column prop="nickname" label="昵称"></el-table-column>
    <el-table-column label="头像">
      <template #default="scope">
        <el-avatar :src="BASE_URL+scope.row.imgUrl"></el-avatar>
      </template>
    </el-table-column>
    <el-table-column label="管理员">
      <template #default="scope">
<!--    开关组件默认需要布尔值, 当不是布尔值时需要通过下面两个属性指定    -->
        <el-switch :active-value="1" :inactive-value="0" @change="handleChange(scope.row)"
                   v-model="scope.row.isAdmin"></el-switch>
      </template>
    </el-table-column>
    <el-table-column prop="createTime" label="创建时间"></el-table-column>
    <el-table-column label="操作">
      <template #default="scope">
        <el-button type="danger" @click="del(scope.$index,scope.row)">删除</el-button>
      </template>
    </el-table-column>
  </el-table>
</template>

<script setup>

import {onMounted, ref} from "vue";
import axios from "axios";
import {ElMessage} from "element-plus";
import qs from "qs";
const handleChange = (user)=>{
  let u = {id:user.id,isAdmin:user.isAdmin};
  let data = qs.stringify(u);
  axios.post(BASE_URL+'/v1/users/update',data).then((response)=>{
    if (response.data.code==2001){
      ElMessage.success("修改完成!");
    }
  })
}
const del = (i,user)=>{
  if (confirm("您确认删除"+user.nickname+"吗?")){
    axios.post(BASE_URL+'/v1/users/'+user.id+"/delete").then((response)=>{
      if (response.data.code==2001){
        arr.value.splice(i,1);
        ElMessage.success("删除完成!");
      }
    })

  }
}
const arr = ref([]);
onMounted(()=>{
  axios.get(BASE_URL+'/v1/users').then((response)=>{
    if (response.data.code==2001){
      arr.value = response.data.data;
    }
  })
})
</script>

<style scoped>

</style>